#python操作excel办公室自动化
'''
excel表格中大量数据的筛选工作

1.读取数据：Pandas模块
pip install pandas
'''
import pandas as pd
#读入文件
data = pd.read_excel('data.xlsx')  #data.xlsx为需要操作的文件名
#print(data)                        #打印所有数据
#print(data['type'])                #打印type列
#拆分数据并增加指定列，汇总数据
data['year'] = data['type'].apply(lambda x:x.split('/')[0].strip())
data['country'] = data['type'].apply(lambda x:x.split('/')[1].strip())
data['type'] = data['type'].apply(lambda x:x.split('/')[2].strip())

#存入excel文件中
writer = pd.ExcelWriter('data_new.xlsx')
data.to_excel(writer,sheet_name='原始数据')   #写入到excel文件中,并命名sheet名为原始数据
writer.close()

#筛选数据
print(data[data['year']=='2018'])  #筛选出year列中为2018的数据
print(data[data['country']=='美国']) #筛选出country列中为美国
for i in data['year'].unique():
    data[data['year']==i].to_excel(writer,sheet_name=i) #将不同年份的数据分别写入到不同sheet中
writer.close()

#根据包含某些类型的数据进行筛选
print(data[data['type'].str.contains('美国')])  #筛选出type列中包含美国的数据

#分割去重
type_list = []
for i in data['type']:
    for j in i.split('/'):
        type_list.append(j.strip())    #strip()去除空格
        set(type_list) #去重
for ty in type_list: #将不同类型数据分别写入到不同sheet中
    data[data['type'].str.contains(ty)].to_excel(writer,sheet_name=ty)
writer.close()